The case ekspresi adalah fondasi dari alur kontrol Elixir. Berbeda dengan pernyataan switch imperatif, case adalah ekspresi fungsional yang mengembalikan hasil dari cabang yang cocok, memungkinkan pengembang untuk membongkar tipe data kompleks seperti peta dan tuple secara instan sekaligus menerapkan logika yang lengkap.
1. Pencocokan Pola & Pengikatan
The case ekspresi memungkinkan Anda menguji suatu nilai terhadap kumpulan pola. Ia menjalankan kode yang terkait dengan pola pertama yang cocok dan mengembalikan nilai dari kode tersebut. Anda dapat mengikat variabel dalam pencocokan untuk digunakan langsung dalam logika cabang.
%{state: some_state} = person ->
IO.puts "#{person.name} tinggal di #{some_state}"
end
2. Alur Logika Visual
3. Klausa Penjaga & Kelengkapan
Dengan menggunakan when kata kunci, Anda dapat menambahkan pencocokan struktural dengan logika predikat (misalnya, is_number(age) dan age >= 21). Elixir mengharuskan adanya pencocokan untuk setiap masukan potensial; jika tidak ada pola yang cocok, maka akan muncul KesalahanCaseClause dipicu.